Microsoft® DirectX® 9.0 SDK
ようこそ
この CD は Microsoft DirectX 9.0 Software Development Kit (SDK) である。DirectX 9.0 と互換性を持つアプリケーション開発に必要な全ての DirectX ソフトウェアが入っている。
含まれている主なコンポーネント : DirectX 9.0 システム コンポーネント (ランタイム)、それぞれの DirectX コア コンポーネントの DirectX 9.0 アプリケーション プログラミング インターフェイス (API) ドキュメント (C++、C#、Visual Basic .NET 開発者用)、DirectX 9.0 ヘッダー & ライブラリ、サンプル アプリケーションとソース コード、その他のツールとユーティリティ。
インストール後、DirectX の初心者は DirectX 9.0 ドキュメントをまず読むべきである。より熟練した開発者は「新機能」セクションを見ることを推奨する。プロフェッショナルな DirectX 開発者は心配する前に「問題点」セクションを参照すべきである。
新機能
インストール
リリースノート
SDK
ドキュメント
Managed DirectX
DirectX Audio (DirectSound® と DirectMusic®)
Direct3D®
D3DX
DirectInput®
DirectPlay®
Broadcast Driver Architecture
DirectShow®
CD レイアウト
コンパイラ サポート
謝辞
Roland SoundCanvans Sound Set for General MIDI and GS
新機能
すべての DirectX コンポーネントに多くの新しくエキサイティングなフィーチャーがある。
新機能のひとつは、D3DX ライブラリの上位レベル シェーダ言語 (HLSH) である。この言語は、頂点シェーダとピクセル シェーダの作成と定義のための、C に似た言語を提供する。それ以外にも以下の新しいコアテクノロジ メンバが追加された、Managed DirectX、DirectPlay for the PocketPC、D3DX 上位レベル シェーダ言語、DirectShow と DirectX Audio API 用のダウンレベル オペレーティング システム上での Windows XP と同等の機能。
DirectShow も新しい Video Mixing Rendere (VMR9) を追加している、これは D3D9 サーフェイスを使い、必ず 3D パイプラインを通してレンダリングする。さらに新しいエキサイティングなサンプルも追加されている。
DirectSound は 192kHz 以上のサンプルレートと、改善されたエフェクトと、DirectMusic の低遅延シンクをサポートする。DirectMusic にはサウンド デザイナ向けの新しい機能と、いくつかの新しいウィザードと、オーサリング ツール DirectMusic Producer のアップデート バージョンが含まれる。
DirectX 9.0 Sample Browser : これは、DirectX 9.0 のサンプル・ドキュメント・プロジェクトにアクセスする新しい手法である。Sample Browser を使って、サンプルを実行するための長ったらしいスタートメニュー階層を削除し、Sample Browser と置き換えた。Sample Browser からサンプルの実行、ドキュメントの閲覧、Visual Studio (Vession 6 と .NET) へのサンプル プロジェクトのロード、DirectX ユーティリティへのアクセスが可能である。
それぞれのコンポーネントの追加情報については「新機能」セクションを見ること。
back to top
インストール
アンインストール
アンインストールするにはコントロールパネルの「プログラムの追加と削除」を使って、InstallShield でアンインストールすること。
back to top
DirectX 9.0 SDK の注意点
新機能
- DXDiag オートメーション、MSInfo32 やその他のクライアントからその情報を取得できる。
- SDK コントロールパネルからリテールとデバッグ間でホット スイッチ可能な DirectPlay。
- Visual Studio .NET との互換性 (プロジェクト、ソリューション、など)。
- DMO (DirectSound/DirectMusic) と DMTool (DirectShow) 用の新しい AppWizard。
- 新しいサンプル - 大きく改善された DirectShow と Direct3D との統合は、DirectX 8.* からの注目すべき変更点である。
- Visual Studio .NET 用にアップデートされた AppWizard。
- Visual Studio IDE に統合された Direct3D シェーダ デバッガ。
- D3DSpy が DirectX 9.0 SDK に追加され、Direct3D プログラムの分析に使えるようになった。D3DSpy は、単純なユーザーインターフェイスを提供する。それによって、Direct3D へのプログラムの全ての呼び出しを通して、プログラマは Direct3D ランタイムの内部状態をモニタ・トラック・ステップ実行し、テクスチャ・モデルなどの内容を検証できる。そしてどの程度プログラムが効率的に Direct3D API を使っているかの統計情報を見る事も可能である。D3DSpy は bin¥DXUtils にある。フィードバックを募集。
- 新しいサンプル - シェーダ ワークショップのインタラクティブなテスト環境。
- DirectX 9.0 の新しい Managed DirectX。マネージ コードから DirectX API にアクセス可能になった。Visual Studio .NET 開発者は、DirectX のマルチメディア機能とハードウェア アクセラレーションのメリットを享受できるようになった。カプセル化された API は以下のとおり : Direct3D、DirectPlay、DirectInput、DirectSound、Audio/Video 再生。COM
レイヤを排除することによって、以前のタイプ ライブラリよりもパフォーマンスを向上させることができた。たとえば、Managed Direct3D のパフォーマンス ゴールはコア C++ パフォーマンスの 98% である。マネージ コードを使うことによって、同じ条件なら最大 10% から 40% までコードを削減できることも分かった。マネージ コードは大きく生産性を改善し、開発者をメモリ管理タスク処理の必要性から開放する。この機能をベストにするために、フィードバックを切に待っている。
問題点
- SDK Sample Browser を実行するには、Microsoft Internet Explorer v5.01 以降が必要である。
- 必ず Visual Studio で DirectX 9.0 ライブラリとヘッダーへのパスを設定すること。それらはリストの最上位に置かなければならない。そうしないとコンパイラ エラーが発生する場合がある。
- DirectDraw がデバッグ ログに「Direct3D8」からと表示する。
- NetMeeting と Windows XP リモート デスクトップではグラフィックス ハードウェア アクセラレーションが使えない。
- .NET サーバー用には、必ずしもすべてのデバッグファイルが提供されていない。それらは .NET Server リリース後に利用可能になる。
- DirectInput キーボード マッパー オプションを使って DXAppWizard for C++ を使うと、CleanupDirectInput() のコードが欠落する。追加すべきコードは、m_pKeyboard->Unacquire(). である。これを行わないと、デバッグ ウィンドウにこの欠落が表示される。
Sample Browser (SDK Sample Browser)
- Sample Browser を実行するには、Microsoft Internet Explorer 5.01 以降が必要である。
back to top
ドキュメント
新機能
- 全てのコンポーネントのドキュメントを日本語化した DirectX 9.0 日本語ドキュメントがサポートされている。標準インストールには含まれていないので、SDK-CD の以下のフォルダから、コピーあるいはインストールすること。
(SDK-CD)¥Extras¥Documentation¥DirectX9¥japanese
注:DirectX9JpnDoc.msi は Visual Studio .NET 用の DirectX 9 日本語ドキュメント インストーラであり、Manage DirectX と C++ 用のドキュメントが含まれている。これを読むためには、Visual Studio .NET が必要である。このインストールには管理者権限が必要である。
問題点
- DirectX 9.0 ドキュメント ファイルのスタート メニューからのリンクは Windows 98 SE では機能しない。スタートのドキュメント リンクに対してすべてのサポート バージョンの Windows 互換のアイコンは表示されない。
- DirectX ドキュメントを正しく見るには、DirectX 9.0 SDK CD からドキュメントをインストールすること。フル インストールを指定するか、カスタム インストールの場合は Documentation を必ず選択すること。
- DirectX 9.0 ドキュメントの既知の問題は別のファイルに記述されている。それらの問題は DirectX 9.0 SDK の ¥doc¥DirectX9 フォルダの DirectX9_Doc_Readme.txt ファイルにリストされている。DirectX 9.0 ドキュメントをインストールすると、このファイルも <DXSDKInstallFolder>¥doc¥DirectX9 にインストールされる。
- 以前のバージョンのDirectXに関連するその他のドキュメントについては DirectX 9.0 SDK の ¥extras¥documentation を参照すること。これらの内容は、http://www.microsoft.com/japan/msdn/directx/
にもある。
- DirectX SDK と MSDN ライブラリの両方から DirectX ドキュメントをインストールすると Visual Studio 内で、ダブってしまう。これが発生したら、次のステップで DirectX SDK からインストールしたドキュメントをアンインストールすること。
- コントロール パネルで、[プログラムの追加と削除] アイコンをクリックする。
- Microsoft DirectX 9.0 Documentation を強調表示させてから、[削除] をクリックする。
必要条件
Visual Studio .NET がインストールされていれば、DirectX マネージ コード アプリケーション プログラミング インターフェイス (API) のドキュメントは、DirectX 9.0 と共に自動的にインストールされる。Visual Studio .NET を開き、ツールバーの [ヘルプ] メニューから [目次] を選択すること。目次の中でこのドキュメントは「DirectX 9.0 (Managed)」と表示される。このドキュメントは、http://msdn.microsoft.com/ から読むこともできる。DirectX マネージ コードとそのドキュメントのインストール方法と使い方の基礎については、トピック「マネージ コードの使用に関するヒント」を読むこと。
back to top
Managed DirectX
新機能
- Direct3D、D3DX、DirectDraw、DirectPlay、DirectInput、DirectSound の全機能を完全にサポート。
- 多くの一般のオーディオ / ビデオ フォーマットの単純な再生をサポート。
- C++ と比較して、ほぼ1対1のサンプル。
- コードの削減。マネージ コードを使えば、DirectX で行う同じタスクはほとんど、より少ないコードで実行できる。
- .NET との密接な統合 - Managed DirectX は .NET とその共通タイプを可能な限り完全に利用している。例えば、Managed
Direct3D テクスチャを作る際、.NET Bitmap オブジェクトから「FromBitmap」メソッド経由で作成できる。
問題点
- Managed DirectX ドキュメントは、Visual Studio .NET IDE ヘルプ システム経由でのみ利用可能である。
- Windows 9x で C# や Visual Basic .NET サンプルを実行すると、フルスクリーン モードからウィンドウ モードに切り替えた後で、タスクバーが再描画されない。フルスクリーンからウィンドウへの切り替え時にスタイルを変更するとき、タスクバー矩形が無効にならないため、タスクバーが再描画されない。必要なら一時的にタスクバーを隠せば、タスクバーを強制的に再描画させることができる。
Windows 9x で C# や Visual Basic .NET サンプルを実行し、REF モード (フルスクリーン) から HAL モード (ウィンドウ) に切り替えると、ウィンドウが最大になる。REF から HAL への切り替えでデバイスが削除されると、フォーム エンジンからのサイズ変更メッセージが無視される、そのためウィンドウ モードでは最大スクリーン サイズを維持したままになる。この問題を解決するには (手動であるいはコードで)、単にウィンドウをサイズ変更すればよい。
- Managed App Wizard が生成する DirectPlay.cs ファイルに間違いがあり、生成された DirectPlay オブジェクトをまったクリーンアップしない。これによってプログラム終了時に (ボイスが利用可能の場合のみ)、処理できない Windows 例外が発生する。ピア オブジェクト上の Dispose() を呼び出せばよい。DirectPlay オブジェクトの次のメソッドを使えば、それぞれ安全にクリーンアップできる。
-
voiceClient.Disconnect()
voiceClient.Dispose()
voiceServer.StopSection()
voiceServer.Dispose()
peerObject.Dispose()
必要条件
Managed DirectX ( MDX ) の開発には、Visual Studio .NET と .NET framework の両方が必要である。ランタイムは MDX をインストールするので、 .NET framework がインストールされていればアプリケーションは動作する。.NET framework は次の URL からダウンロード可能である。http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/829/msdncompositedoc.xml.ここには、開発ツールがインストールされていないマシンで、MDX .NET アプリケーションを含む .NET アプリケーションの実行に必要な .NET Framework 再頒布モジュールが置かれている。.NET Framework FAQ は、http://www.microsoft.com/japan/msdn/netframework/prodinfo/qa.aspにある。.NET Framework SP2 へのアップデートを推奨する、これは http://www.microsoft.com/japan/msdn/netframework/downloads/sp2/download.asp
から利用できる。
back to top
DirectX Audio (DirectSound® と DirectMusic®)
新機能
- DirectSound 低遅延シンクを使うと、ソフトウェア シンセサイザと DirectSound 経由で再生するオーディオ パスを使うときに、DirectMusic を非常に小さな遅延で動作させることができる。これは、DirectMusic の機能の利点を利用したいが、すばやいインタラクティブな応答の小さい遅延が必要なサウンドデザイナや作曲家に特に役に立つ。このリリースでは、DirectMusic のデフォルトの遅延は、55ms だが、よりハイエンドのマシンではさらに小さくできるだろう。
- DirectSound は 192+kHz をサポートする。オペレーティング システム (Windows XP SP1 から) によってサポートされるサウンド バッファの最大周波数は 100kHz から 200kHz に増加した。この新しい周波数限界は現在 DirectShow ではサポートされていないので、注意すること。
- 周波数とエフェクト (DSBCAPS_CTRLFREQUENCY と DSBCAPS_CRTLFX フラグ) が、DirectSound バッファで同時に設定できるようになった。
- dsdmo.dll 内のエフェクトはパラメータ カーブをサポートする (DirectSound の外でホストされるとき) ようになったので、非常に小さなインクリメントで繰り返し Process() を呼び出さずにすむ。dsdmo.dll 内のエフェクトはまた、オーディオ データを IEEE_FLOAT で処理できる。
- WAVEFORMATEXTENSIBLE オーディオ フォーマットは DirectSound 経由で完全にサポートされる。しかし、そのフォーマットは DMO エフェクトと連結して使うことはできない。
- ウェーブ トラックの DirectMusic ウェーブは、減衰と微調整のために可変レンジの値を持ち、再生時にもう1つの音量調整が可能になった。
- DirectMusic がストリーミングするウェーブがループ可能になった。ループ環境や環境音用に大きなストリーミング ウェーブを使う際に効果的である。
- DirectMusic クロックタイム ループが可能になり、ミュージック テンポが変化しても、ループは変化しない。期待通りに機能させるには、セグメント長をクロックタイム内で設定すべきである。全てのセグメント トラックもそのプロパティ ページにあるクロックタイムを使って指定するべきである。
- DirectMusic の圧縮が改善された。MP3 圧縮ウェーブ ファイルを DLS で開始する際の空白を排除する機能。
- DirectSound と DirectMusic には Windows XP と Windows XP SP1 のバグフィックスが全て含まれている。
- 新しいオーディオ エフェクト DMO と DirectMusic Tool Wizards。詳細情報については、最後の CD レイアウトを参照。
- Essentials ディレクトリにある DirectMusic Style Library。詳細情報については、最後の CD レイアウトを参照。
- DirectMusic Producer : 新機能の情報については、Producer をインストール後 Dmusprod.txt を参照。
問題点
- バンドが PChannel のボリュームを変更していると、ウェーブ トラック ボリュームがトランジション後にリセットできない。
対応策 : そのウェーブトラックを持つセグメントにバンドを追加する
- DirectSound 通知が、同じプロセス内の他の DirectSound 処理や他の DirectSound バッファによってトリガーされる場合がある
(まれにしか発生しないが知っておくべきである)。
- DirectMusic はデフォルトでは、Windows .Net Server 2003 にインストールされない。しかし、(DirectMusic を含む) DirectX 9 をこのシステムにインストールすることは可能である。
back to top
Direct3D
新機能
以下に示す多くの新しい興味深いデータ フォーマット
- 浮動小数点 Z バッファ フォーマット
- 16-bit 浮動小数点頂点フォーマットとテクスチャ フォーマット
- 64-bit 整数と 32-bit 浮動小数点のテクスチャ フォーマット
- 10:10:10:2 ピクセル フォーマット
- 放棄可能な深度バッファとステンシル バッファ
- 負荷の低いミップマップ
- ツーサイド ステンシル
以下に示す 2D / Video / GDI 機能のサポート
- ビデオ ハードウェア アクセラレーションのサポート
- 2D 操作、例えば伸縮拡大、BLT、シザーリング
- GetDC を使った GDI との相互運用性
以下に示す新しい 3D レンダリング機能
- ディスプレースメント マッピング
- 深度バイアス
- アンチエリアス ライン
- 定数ブレンド ファクタ
- アルファ チャンネル ブレンディングの分離
- マルチ サンプリング品質コントロール パラメータ
- テセレーション
- マルチ エレメント テクスチャのサポート
- 複数レンダリング ターゲット
- 自動生成ミップマップ
- 球状 TexGen モード
その他
- 非同期通知
- 新しい頂点ストリーム宣言
- マルチヘッドのサポート
- スワップ エフェクトとプレゼンテーション レートへのクリーンアップ インターフェイス
- モニター リフレッシュ ヒューリスティクスの改善
- ガンマ補正
- ウィンドウモードのプレゼンテーションでの色変換
現在と将来のハードウェアのための新しい頂点シェーダ モデルとピクセル シェーダ モデル
- ピクセル シェーダ モデル 2.0 と 3.0
- 頂点シェーダ モデル 2.0 と 3.0
問題点
- Direct3D9 インターフェイスは DirectX 7 以上のレベルの DDI インターフェイスに限定される。
- Windows2000 カーネルの制限によって、リソースがロックされアプリケーションがアクセスしている間に開放されてしまう場合がある。
これによってアプリケーションは開放されたメモリに書き込むことになり、例外が発生する。
この問題は D3DPOOL_DEFAULT リソースで、ディスプレイ ドライバがシステムメモリへの配置を選択した場合にのみ発生する。デバイスが消失状態になるとき (モード変更や ALT+TAB によって)、すべての D3DPOOL_DEFAULT リソースは開放される。Direct3D は別のビデオ メモリ リソース ポインタへのコードを持ち、それらをダミー ページにリダイレクトする。しかし、D3DPOOL_DEFAULT システム メモリ リソースは保護されない。システムメモリに配置された最もありがちな D3DPOOL_DEFAULT リソースはインデックス バッファだが、いくつかのドライバは同じように他のリソースもシステム メモリにおくことを選ぶ場合がある。アプリケーションは、全てのリソースをトライ...キャッチ ブロックでラッピングすることによって自分自身を保護するとよい。
- Direct3D ソフトウェア T&L パイプラインを使っているとき (D3DCREATE_SOFTWARE_VERTEXPROCESSING フラグ セット、あるいはD3DCREATE_MIXED_VERTEXPROCESSING フラグ かつ ソフトウェア頂点処理を有効にして作成されたデバイス)、ポイント スプライトのサポートは保障されない。ハードウェア頂点処理を使うとき、いくつかのデバイスはポイント スプライトをサポートしない場合があるが、そういったデバイスは d3dcaps->MaxPointSize を 1.0f にしてそれを示している。
- Windows 98 と Windows Me では、SetDialogBoxMode を使って GDI ダイアログボックスを有効にした後で present を使っても、ダイアログボックスが正しく表示されない場合がある。この問題への対応策として、アプリケーションは SetDialogBoxMode 呼び出しの後で必ず Reset を呼び出せばよい。
問題点 (頂点シェーダ / ピクセル シェーダ)
- 2つの頂点シェーダ命令がマイナス値の対数のような範囲外の入力に対して実装固有の結果を生成する場合がある。そのため、log、logp、lit 命令マクロの y 成分にはマイナス値を渡すべきではない。
- D3DMISCCAPS_CLIPPLANESCALEDPOINTS Caps ビットは DirectX 8 ソフトウェア頂点処理パイプラインデバイス内で正しく設定されない。そのビットは対応する DirectX 9 デバイス内でクリアされる。しかし、この違いは DirectX 8 デバイスにおける DirectX 8.0、8.1 と DirectX 9.0 バージョンとの間の動作の不一致によるものであって、DirectX 8 デバイスに関するこれまでの動作は変更していない。
- DX8 と DX9 間のシェーダ def 命令に関する動作には違いがある - 頂点シェーダとピクセル シェーダにある定数定義命令「def」の動作が DX8 と DX9 間で変更されている。同じカテゴリに defi と defb 命令が新しく追加されている。DX8 では、与えられたシェーダ内で def 命令が定義した定数のライフタイムは、そのシェーダの実行中に限られていた(オーバーライドできなかった)。DX9 ではの動作は次のとおりである。シェーダが c4 を定義すると、c4 に対する Set*ShaderConstantF() 呼び出しが作成され、シェーダはその定義された値を取得する。c4 を使う(しかしそれを定義しない) 別のシェーダが実行されると、そのシェーダも Set*ShaderConstantF() が設定した値を取得する。その上 Get*ShaderConstantF() は、Set*ShaderConstantF() が設定した定数値を必ず取得する。DX8 の動作では、まるでシェーダ自身の設定に続いて Set*ShaderConstant() が呼び出され、それぞれの値を定義していたかのように、シェーダ内の def は Set*Shader() が呼び出されている間だけ効果を持っていた。値の定義命令を持つシェーダが設定された後で Set*ShaderConstant() を呼び出すと、その定義された値はオーバーライドされた。これを望む場合もあるかもしれないが、他のシェーダが定義したある定数値をシェーダがずっと使っている場合、複数のシェーダが設定される順序がその動作に影響を与えるという不必要な属性になっていた。期待通りにするために、DX9 ラインタイムが定数を管理し、DX8 ドライバ上で実行中でもその動作を保証する。上述の DX9 の動作は必ず遂行される。
- VS 3.0 シェーダを PS 3.0 をサポートしていないデバイス上で作成するときは、出力定義の表現に注意する必要がある。なぜなら、その宣言の内容と順序をランタイムがラスタライザに渡すとき、その結果を FVF にマップしようとするからである。特に:
a) 頂点セマンティクスは FVF で表現可能でなければならない
b) 定義の順序は FVF 内の頂点セマンティクス用の順序制限に従うべきである。
これらの規則に従わないと、次のようなアサートやデバッグ エラー メッセージとなる:
Direct3D9: Decl Validator: X1059: (Global Error) On a device that does not support ps_3_0, a transformed vertex declaration must specify elements in FVF order.
back to top
D3DX
新機能
- DirectX 9 にシェーダ プログラミングのための新しい上位レベル シェーダ言語が導入された。この言語を使えば、関数・任意の変数名・条件・ループを使って、シェーダをより簡単に書けるようになった。
- シェーダ コンパイラは次のプロファイルをサポートするようになった : s_1_1, vs_2_0, ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw
- シェーダ フラグメント リンカが追加され、シェーダの管理とバージョン管理が容易になった。フラグメント リンカはアセンブリレベルも上位レベル シェーダ言語のシェーダ フラグメントも一緒にリンクする。すなわち、ライティングの種類やスキニングの種類のミキシングやマッチングなどが可能である。
- DirectX 9 ではエフェクト フレームワークに大きな変更をいくつか行った。特に ID3DXEffectCompiler インターフェイスの追加である。EffectCompiler インターフェイスはシェーダの特殊化に有効である、つまりシェーダの特殊なコンパイル用のリテラルとしてグローバル変数を作成する。
- エフェクト間で共有できる変数を追加した。キーワード「share」を持つエフェクト ファイル内の変数は与えられたエフェクト プールを使って作成されたすべてのエフェクト間で共有できる。
- メッシュ ライブラリに、適応型テセレーションを含むパッチ サポートが追加されている。
- 新しいアニメーション サブシステムとメッシュ階層ローダが追加されている。
- メッシュ ライブラリは任意の頂点宣言をサポートするようになった(単一ストリームのみ)。CloneMesh は全てのデータ型変換を処理する。すなわち、FLOAT2 から FLOAT16_2 や D3DDECLTYPE_DEC3N など。
- このリリースの上位レベル シェーダ言語 (HLSH) では、複数次元配列の初期化が正しく動作しない。この問題は将来の D3DX のリリースで修正される予定である。
言語の制限事項
- ps_1_4 プロファイルは従属ルックアップに対する 2 つ以上のフェーズをサポートしない。
- ps_1_1、ps_1_2、ps_1_3 において、texdp3tex と tex3xm* 命令は定数テーブルに間違った情報を出力する。この問題を修正するには、サンプラを適切なテキスチャ ステージに手動でバインドすべきである。
問題点
- この製品には University of California, Berkeley によって開発されたソフトウェアが含まれている。
- 3dsmax エクスポータを使う前に、再コンパイルすることを推奨する。
- Max の x ファイル エクスポータのバイナリは、SDK 内には含まれなくなった。それを使うには、使用している Max のバージョンでプラグインをコンパイルすること。これによって確実にエクスポータは正しく機能するはずである。
back to top
DirectInput
新機能
DirectInput のこのリリースは DirectX 8.1 と同一の機能を持っている。現在のところ、DirectX 9.0 の DirectInput に機能を追加する予定はない。
back to top
DirectPlay
新機能
- DirectPlay application programming interfaces (API) は、Microsoft Windows® Powered Pocket PC 2002 で利用可能である。詳細情報はヘルプファイルの DirectPlay for Pocket PC 2002 を参照すること。
- DirectPlay8 Bluetooth Service Provider for Pocket PC 2002 は、Microsoft Windows CE Bluetooth スタックを使ったデバイスで利用可能である。
- DPN_MSGID_SEND_COMPLETE メッセージ構造体は新しいメンバーである、これを使えば個々のメッセージの実際の往復時間を確認できる。
- DirectPlay は、ネットワーク シミュレーションのための新しいサービス プロバイダを持つ。dp8simui.exe インターフェイス ツールを使い続けることもできるし、新しい IDP8SimControl メソッドを使ってさまざまなネットワーク条件でのアプリケーションのテストも可能である。
- アプリケーションは、IDirectPlay8Peer::CancelAsyncOperation()、IDirectPlay8Server::CancelAsyncOperation()、IDirectPlay8Client::CancelAsyncOperation() を呼び出すとき DPNCANCEL_PLAYER_SENDS フラグを使って、個別のプレーヤから送られたメッセージを全てキャンセルできる。
- プレーヤは、DPN_MSGID_CONNECT_COMPLETE メッセージ内でローカル プレーヤの ID を受け取る。
- IDirectPlay8Peer::Host() か IDirectPlay8Server::Host() を呼び出すとき、DPN_APPLICATION_DESC 構造体の DPNSESSION_NOENUMS フラグを設定することによって、ホストは DirectPlay にサービス列挙クエリをさせないようにできる。さらに、このフラグを入れて IDirectPlay8Peer::SetApplicationDesc() か
IDirectPlay8Server::SetApplicationDesc() を呼び出すことによって、サービス列挙クエリをオン・オフすることができる。
- プレーヤのいないグループに送られたメッセージは、DPNERR_GENERIC ではなく DPNSUCCESS_NOPLAYERSINGROUP
を返すようになった。
- DirectPlay8 の全トラフィック用のオプション パケット シンギング。
- 接続妨害に対する防御の改善。
- 強制的な即時シャットダウンのために、Close() に DPNCLOSE_IMMEDIATE フラグを追加した。
- DirectPlay8 に実行中のセッション インフラについてのヒントを提供するため、Initialize() に DPNINITIALIZE_HINT_LANSESSION を追加した。
- Send() / SendTo() のために DPNSEND_COALESCE フラグを使ったパケット融合を追加した。
- SetCaps() に提供し、GetCaps() から取得する DPN_CAPS_EX 構造体を使った、アプリケーションによる DirectPlay8 プロトコルのチューニングを可能にした。
- グループ オーナーのコンテキスト値を DPNMSG_CREATE_GROUP 構造体に追加した。
- dpnsvr.exe を開始せずに、DPN_APPLICATION_DESC 構造体の DPNSESSION_NODPNSVR フラグなしで Host() を呼び出すと失敗し、DPNERR_DPNSVRNOTAVAILABLE を返す。
- 少しの間だけ「失った」リンクに対する DirectPlay8 プロトコルの振る舞いが改善された。
- NAT サポートの更なる改善のために、新しい IDirectPlay8NATResolver インターフェイスとクライアント サイド デバイス アドレス コンポーネント DPNA_KEY_NAT_RESOLVER と DPNA_KEY_NAT_RESOLVER_USER_STRIN を追加した。
- 新しい DPNA_KEY_TRAVERSALMODE デバイス アドレス コンポーネントを、自動 NAT 制御とファイアウォール トラバーサル設定に追加した。
- DirectPlay のスレッド越しにより正確に制御できるよう、新しい IDirectPlay8ThreadPool インターフェイスを追加した。これには新しい DoWork スレッドレス モードも含まれている。
- 全てのホスト アドレスを単一のアドレスオブジェクト内に一体化するために、GetLocalHostAddresses() に DPNGETLOCALHOSTADDRESSES_COMBINED フラグを追加した。これを EnumHosts や Connect に渡せば、全てのアドレスを同時に試すことができる。
- 透過的な IPv6 サポートを TCP-IP サービス プロバイダに追加した。DPNA_KEY_HOSTNAME コンポーネントが IPv4 10進の表記 (nnn.nnn.nnn.nnn) を仮定している場合以外は、アプリケーションは IPv4 か IPv6 のどちらかをサポートするために変更を要求すべきではない。
問題点
- 全二重モードで DirectPlay Voice を使う場合、オーディオ デバイスのドライバを最新にアップデートすることを推奨する。以前のドライバでは安定した全二重のパフォーマンスを提供できない場合がある。
DirectPlay for Pocket PC についての注意
- メモリを節約するために、DirectPlay の PocketPC バージョン用のリテール バイナリにはパラメータ評価が入っていない。開発時アプリケーションは、パラメータ使用エラーをチェックするためにデバッグ バイナリを使って作成すべきである。
IDirectPlay8ThreadPool についての注意
- DirectPlay Voice は、共有 スレッド プールをサポートしない。IDirectPlay8ThreadPool::SetThreadCount メソッドを使ってスレッドの数を変更したり、スレッドなしの「DoWork」モードに DirectPlay を置いたりしても、ボイス メッセージ ハンドラ コールバックには効果がない。ボイス コールバックの処理を複数スレッド上で準備するべきである。そのスレッドは、IDirectPlay8ThreadPool の設定にかかわらず DPN_MSGID_CREATE_THREAD メッセージを生成しないスレッドでなければならない。
- モデム サービス プロバイダとシリアル サービス プロバイダは、共有 スレッド プールをサポートしない。これらのサービス プロバイダを使う場合には、コールバックの処理を複数スレッド上で準備するべきである。そのスレッドは、IDirectPlay8ThreadPool の設定にかかわらず DPN_MSGID_CREATE_THREAD メッセージを生成しないスレッドでなければならない。TCP/IP や IPX のように、サービス プロバイダがスレッド プールをサポートするかどうかを識別するには、IDirectPlay8Peer::GetSPCapsや、IDirectPlay8Client::GetSPCapsや、IDirectPlay8Server::GetSPCaps が返す DPNSPCAPS_SUPPORTSTHREADPOOL フラグを確認すればよい。
ネットワーク アドレス変換 (NAT : Network Address Transform) についての注意
- TCP/IP サービス プロバイダへの最初の操作を実行するとき、DirectPlay はネットワークアドレス変換 (NAT) かファイアウォールを検知しようとする。これは Connect()、Host()、EnumHost() 呼び出しの時間を増加させる。マシンが NAT やファイアウォールの下にないことが分かっているとき、新しいDPNA_KEY_TRAVERSALMODE デバイスアドレス コンポーネントをDPNA_TRAVERSALMODE_NONE に設定すれば、この検知処理を無効にできる。
- デバイス アドレスにあるポートを指定するとき、デフォルトの DirectPlay トラバーサル モード DPNA_TRAVERSALMODE_PORTREQUIRED は同じポート番号を Universal Plug and Play (UPnP) 互換 NAT 上に外部的にマップする。このポートがすでに使われていると、Connect()、Host()、EnumHosts() は DPNERR_INVALIDDEVICEADDRESS で失敗する。ある場合には、アプリケーションはパブリック ポートがローカルポートと同じであることを要求しないかもしれない、あるいはまったくマップしないかもしれない。この動作を避けるには、DPNA_TRAVERSALMODE_NONE か DPNA_TRAVERSALMODE_PORTRECOMMENDED を使うとよい。
Windows ACM (Audio Compression Manager) 経由の DirectPlay Voice CODEC についての注意
- DirectPlay Voice は次の COEDEC を Windows ACM 経由で使用する :
- Microsoft ADPCM
- Microsoft GSM
- DSP Group Truespeech
- Windows でのこれらの CODEC のインストールはオプションである。これらがインストールされていないと、DirectPlay Voice の 1 つあるいは複数の圧縮タイプが機能しない。ACM CODEC が無いので機能しない圧縮タイプをアプリケーションが使おうとすると、 DVERR_COMPRESSIONNOTSUPPORTED 戻り値が返る。
- Windows 2000 では、[ハードウェアの追加と削除] ウィザードを通してユーザーがこれらの CODEC がインストールできる。ユーザーは [デバイスの追加/トラブルシューティング] を選択すべきである。ハードウェアのリストが表示されたとき、ユーザーは [新しいデバイスの追加] を選択し、次のページで [いいえ、一覧からハードウェアを選択します] を選択すべきである。これによってハードウェアのリストが表示される。[サウンド、ビデオ、およびゲーム コントローラ] を選択する。[標準システムデバイス] に、[オーディオ CODEC] がリストに表示される。
- Windows 9x ではこれらの CODEC を [新しいハードウェアの追加] ウィザードを通してインストールすることができる。ウィザードの問い合わせに対して、ユーザーは [いいえ、一覧からハードウェアを選択します] を選択すべきである。デバイス タイプのリストから、[サウンド、ビデオ、およびゲーム コントローラ] の項目にCODEC がリストに表示される。CODEC は 2 つの製造者にリストに表示される。ADPCM と GSM CODEC は [Microsoft オーディオ CODEC] に、そして Truespeech CODEC は [DSP Group] にリストに表示される。
back to top
Broadcast Driver Architecture
新機能
- ダウンレベル システム (Windows XP 以前) に対する機能の互換性
- DVB-T と DVB-C ブロードキャスト規格サポートの追加
問題点
- DirectX 9 をインストールした後で、チューナーをインストールしないと、ipsink を使った mpe/slip とのピン接続は、「filters cannot agree on a connection」を出して失敗する。この動作は、Windows XP では必ず発生する。これは、TV チューナ ドライバが正しくインストールされていないために発生する。BDA MDIS ミニポートはの自動ローディングは仕様によって制限されている。DBA.INF を右クリックしてインストールし、マシンを再起動すればこの問題を回避できる。
Windows 2000 での ブロードキャスト IP データ取得の問題
- BDA レシーバ カードをインストールして Windows 2000 システムを再起動した後、BDA NDIS IP NIC はすぐにはアクティブにならない。アプリケーションが IPSink フィルタをグラフに挿入し、入力ピンを接続したときにアクティブになる。IPSink フィルタの入力ピンを接続することによってアクティブになると、20 - 30 秒で BDA NDIS IP NIC に IP アドレスがアサインされる。アサインされたアドレスは Net 10 アドレスである。一度アクティブになると、BDA NDIS IP NIC
はシステムを再起動するまでアクティブのままである。
- いくつかのアプリケーションはデフォルト LAN アダプタとして BDA NDIS IP NIC を使う。これらのアプリケーションは BDA NDIS IP
NIC がアクティブだと失敗する。BDA NDIS IP NIC を非アクティブにするには、システムを再起動して TV グラフやアプリケーションを実行しないこと。
- BDA ネットワーク プロバイダ プロパティ ページを GraphEdit で見るとき、-1 の値は入力できない。対応策として、0 を入力してから下矢印をクリックし値を -1 に設定すること。
- DirectX 9.0 をインストールする前にチューナーがポストにインストールされていないと、mpe とのピン接続 / ipsik とのスリップは失敗する。この振る舞いは Windows XP で顕著である。これは TV チューナードライバが正しくインストールされていないことが原因である可能性がある。BDA NDIS ミニポートの自動ローディングは故意に制限されている。解決策はマシンの再起動後に右クリックして bda.inf をインストールすることである。
back to top
DirectShow
新機能
- Video Mixing Renderer フィルタ-9 (VMR-9) この新しい再頒布可能なレンダリング フィルタは Microsoft Windows XP Home Edition と Windows XP Professional 用に利用可能な VMR (これを「VMR-7」と呼ぶ) と同様のコンセプトと設計である。VMR-9 は最初の VMR-7 より強力である、なぜなら DirectX 9.0 グラフックス能力と完全に互換性があり、非インターレース ビデオと ProcAmp 制御 (輝度、コントラスト、色相、彩度) の改善されたサポートを提供するからである。
-
DV Video Decoder フィルタにおける新しい非インターレース サポート。DV Decoder フィルタは、非インターレース出力と同じく、インターレース出力をサポートするようになった。以前のバージョンのデコーダは必ず非インターレースで出力した。新しいバージョンでは、インターレース ビデオが保存され、ファイルに出力される。そのビデオは VMR によって、改善された品質の非インターレースで表示される。
- DirectX Video Acceleration における新しい非インターレース サポート。
- Windows XP 以前の全プラットホームにおける AVStream ドライバ開発とランタイム サポートは、Windows XP に近づき同等に機能するよう改善された。 AVStream とコアのカーネル ストリーミングと動作が若干異なるが、これについては SDK のドキュメントに記載されている。
- エンコーダ アプリケーション プログラミング インターフェイスの新しい仕様。エンコーダ API は標準的なフォーマットに中立的な方法を定義する、それを使ってソフトウェア エンコーダやハードウェア エンコーダはアプリケーションやデバイスドライバとコミュニケーションできる。IGetCapabilitiesKey は、アプリケーションからフィルタの能力を問い合わせを可能にするために、フィルタが実装できる新しいインターフェイスである。
- MPEG-2 セクションとテーブル フィルタ。この新しいフィルタによって、アプリケーションは MPEG-2 トランスポート ストリームから PSI テーブルを取得できる。
- Microsoft TV Technologies は DVB-S (衛星) に加えて DVB-T (地上波) と DVB-C (ケーブル) をサポートするようになった。詳細については SDK のドキュメントを参照すること。
- アナログ TV チューナー フィルタはレジストリからの新しいチャンネル周波数の追加をサポートするようになった。この機能は既存のメカニズムをチャンネル周波数追加オーバーライド用に拡張した。詳細については SDK ドキュメントの「国際アナログ TV チューニング」を参照すること。
- DirectShow 編集サービス (DES) にプラグイン ラスタライザ フィルタがサポートされた。詳細情報は、SDK ドキュメントの「カスタム ビデオ ラスタライザ」を参照すること。
- DVD Graph Builder では、アプリケーションは IDvdGraphBuilder::RenderDvdVideoVolume メソッドを使って VMR-9 の使用が可能になった。DVD Navigator は早送り中のオーディオ再生をサポートするようになった。デコーダがこの機能をサポートすれば、オーディオ トラックのピッチが上がることなく、ユーザーは 1x より高速にムービーを視聴できるようになった。DVD Navigator はより高速な DVD メニュー ナビゲーションを提供するようになった。
- ビデオ レンダラは、デバッグ ビルドでフレームカウンタを表示しなくなった。
SDK のアップデート
- 次に示す、GraphEdit ユーティリティの大きな強化。Windows Media Certification (非 DRM WM グラフのキー解除)、フィルタお気に入りメニュー、リモート グラフからの接続/解除の改善、セーブ / リストア オプション、コマ送り、接続されたフィルタのカラー コーディング。XGR ファイルは GraphEdit ではサポートされなくなった。
- サンプル ソース コードは改善され、セキュリティ・信頼性・読みやすさが向上した。Visual Studio.NET に対するサポートも追加されており (VC.NET プロジェクト、ソリューションなど)。
- オーディオ ビデオ再生用のマネージ コード。Microsoft.DirectX.AudioVideoPlayback マネージ コード名前空間はオーディオ ビデオ メディアの再生と単純な制御を提供する。詳細情報は、マネージ DirectX コンポーネントの DirectX ドキュメントを参照すること。
- SDK サンプルとツールには数多くのバグフィックスと改善が行われた。
- Visual C++ 6.0 と Visual Studio.NET プロジェクト用の新しい Unicode デバッグ/リリース ビルド ターゲット
- SDK ドキュメント内の新しい内容や改善された内容
- 新しい ProfileEnum ツール (Bin¥DXUtils にある)は、システム上で利用可能な Windows Media システム
プロファイルをリストする。このツールは、DirectShow インターフェイス経由で Windows Media ファイル (ASF,WMA,WMV)
を作成しているとき役に立つ。
- AMCap サンプル アプリケーションは、MPEG-2 コンテンツをストリームするアナログ TV チューナからの入力のような、MPEG-2 プログラム ストリーム入力をサポートするようになった。サードパーティの DirectShow 互換の MPEG-2 デコーダはまだストリームのデコードを要求される。
- PlayCapMoniker サンプルは、モニカを使った RenderFile() の使用がサポートされなくなったので、代替手法 (AddSourceFilter()) を説明する。
新しい DirectShow サンプル
- Audiobox: オーディオのみのメディア プレーヤ、Jukebox サンプルに似ている。Favrites と、Windows Media
Audio と MP3 ファイルの再生をサポート。
- CaptureTex: Texture3D と PlayCap サンプルをブレンドして、回転する Direct3D
サーフェイスに入って来るライブ ビデオを表示する。
- CaptureTex9: CaptureTex サンプルがライブ受信ビデオを Direct3D9 サーフェイス (はためく旗) にレンダリングできるようにした。
- CompressView: 異なった圧縮タイプを使ってオーディオやビデオを再圧縮する方法を説明する。
- DSNetwork フィルタ: IP ソース フィルタと IP レンダリング フィルタの実装。このフィルタ セットによって、ネットワーク上の MPEG-2
の送信 / 受信が可能になる。
- GrabBitmaps: ビデオ ストリームからビットマップをキャプチャする方法を示す。
- Metronome フィルタ: 基準クロックの実装方法を示すサンプル フィルタ。
- PlayDVD: PlayWind サンプルをベースにした単純なウィンドウモードの DVD プレーヤ。
- PlayWndASF: 以前の PlayWndASF サンプルに限定的な DRM サポートを追加した。
- PSIParser フィルタ: MPEG-2 トランスフォーム ストリームから番組情報を受け取る方法を示す。
- PushSource フィルタ: 1つのビットマップ、一連のビットマップ、ライブ ビデオ デスクトップ キャプチャ ビデオ ストリームを出力する3つのソースフィルタのセット。
- RenderLog: このサンプルは、メディア ファイルレンダリング中に DirectShow
進捗のテキストログを作成する。IGraphBuilder::RenderFile
を呼び出したときにエラーを受け取ったら、このツールを使ってログを作成・表示させるとよい。
- RGBFilters: テスト用に便利な、いくつかのサンプル ソース フィルタと変換フィルタのセット。
- Texture3D9: DirectX 9 テクスチャ サーフェイス上にビデオを再生するよう Texture3D を拡張したサンプル。より効率的なレンダリングのために Direct3D9 機能を利用。
- TransViewer: システムにインストールされている全ての DirectShow Editing Services
トランジションをプレビューできる。
VMR7のさまざまな機能を説明する VMR7 サンプル
- Blender: 2つのビデオストリームをミックス・ブレンド・処理する方法を説明する。
- Monitor Info: (VMR インターフェイスを使って) 利用可能なモニターについての単純な情報を表示する。
- Pip: VMR を使ってピクチャ イン ピクチャ エフェクトを作成する方法を説明する。
- Text: 再生中のビデオの上にアルファ ブレンドされたテキストを表示する。
- Ticker: Text サンプルを拡張した。このサンプルはビデオの下部に水平にスクロールするテキストを描画する。静的なビットマップとしてテキストをスクロールすることも、ユーザー入力によって作成した動的に生成したビットマップとしてテキストをスクロールすることもできる。
- VMRMulti: アニメーションされた Direct3D 背景の上に複数のビデオ ファイルを再生する。 各ビデオストリームはシーク可能である。
- VMRXclBasic: フルスクリーン排他モードでのビデオ再生方法を示す。
- Watermark: ビデオの上にアルファ ブレンドしたビットマップを置き、エフェクトを追加する (アルファ ストロボ、スクロール、ビットマップ アニメーション)。
- Windowless: VMR ウィンドウレス モードを使った基本的な再生を説明する。
全ての DirectX9 システム上で動作する VMR9 の使い方を示す新しい VMR9 サンプル
- 8つの VMR-7 サンプルの VMR-9 バージョン: Blender9、MonitorInfo9、Pip9、Text9、Ticker9、VMRPlayer9、Watermark9、Windowless9
- VMR9Allocator: 回転する Direct3D サーフェイス上にビデオをレンダリングする。
- BitmapMix: VMR-9 レンダラを使って、マウス入力によって移動可能なビットマップとブレンディングしながら、Direct3D9 サーフェイス上にビデオをレンダリングする。
- MultiVMR9: 複数グラフ環境でカスタム VMR9 アロケータ-プレゼンタを使い方を説明する。このプロジェクトには 3 つのフォルダがあり、それぞれサポート DLL、MultiPlayer サンプル、Direct3D ゲーム環境でビデオ再生を統合する 3D GamePlayer サンプルが置かれている。
削除されたサンプル
JukeboxASF は削除された。その Windows Media サポートは Jukebox サンプルに統合された。
サンプル メディア ファイル
highway.avi と ruby.avi で使われていたビデオ CODEC は Cinepak に変更された。これは、Windows XP SP1 のクリーン インストールで再生可能にするために行われた。Windows XP SP1 では Indeo CODEC は出荷されていない。
問題点
- XLTTest のようないくつかの DirectShow のサンプルは、Windows Media Player 7 以降で再頒布されているファイルに依存している。一般的なランタイム エラーや"A required .DLL file, WMVCORE.DLL, was not found." が発生したとき、現在の WMP のバージョンをチェックしアップデートすること。これらのファイルは、Windows Media Format SDK の再頒布ファイルから入手できる。
- MPEG-1 オーディオ デコーダに修正が 1 つ加えられた、MPEG オーディオ レイヤ内での動的変更は許可されなくなった。
- いくつかのビデオ カード ドライバは、2 の累乗以外のテキスチャをサポートすることを示す D3DPTEXTURECAPS_NONPOW2CONDITIONAL フラグを正しく示さない。このドライバのバグによって、アルファ ブレンドしたビットマップの代わりに化けたビデオ データが表示されるかもしれない。これは、Samples¥DirectShow¥bin フォルダにある Text か TickerVMR を実行すると分かる。このベンダ ドライバの問題が早急に解決されることを希望している。
- DirectShow Visual Basic 6.0 サンプルは Extras フォルダに置かれている。DirectX 9.0 用の新しい Visual Basic あるいは Visual Basic .NET サンプルはない。
- オーディオ エフェクト DMO を使ったとき、MP3 デコーダに既知の問題がある。既存の MP3 フィルタ グラフにオーディオ エフェクト DMO (WavesReverb や Echo や Flange のような) を追加すると、そのオーディオは倍速で再生される。MP3 デコーダが (DMO フィルタ ラッパー経由で) ダウンストリーム オーディオ エフェクト DMO と接続していると、非圧縮 MP3 ストリームのネイティブ フォーマットと一致しないデフォルト オーディオ入力タイプを提供するので、この問題が必ず発生する。例えば、22kHz MP3 ファイルをレンダリングし、DMO オーディオ エフェクトを追加すると、MP3 フィルタはその入力タイプが実際には 22kHz なのに 44kHz として誤って解釈する。これは 44kHz MP3 ファイルでは発生しない。
- WavesReverb DMO は 16-bit オーディオ入力だけを許可する。WavesReverb DMO に 8-bit オーディオ ソースを接続しようとすると、接続は失敗する。
- サンプル XTL ファイルは DirectX 8.1 でアップデートされ、Windows XP の DES XML パーサーの変更を反映している。XML
属性は小文字で指定しなければならない。大文字小文字が混在する属性は Windows XP では失敗する。
- 最新の WM ASF Render フィルタと WM ASF Weiter フィルタと DMO Wrapper フィルタは、Windows Media Format 9 Series SDK の中で出荷されている。このバイナリ コンポーネント (qasf.dll) のアップデートは Windows Media のリリースでのみ行われている。DirectShow SDK では、DirectX 8.1 レベルの機能に限定したバージョンを出荷している。
- VMRXcl と VMRXclBasic サンプルにはどちらも、32-bit カラーで 640x480 解像度に設定可能なビデオ アダプタが必要である。いくつかの古いビデオ カードは 16-bit カラーか 24-bit カラーしかサポートしない、この場合サンプルは正しく動作しない。
- DirectShow Editing Services (DES) が XTL ファイル内で数を解析する方法は、完全に一貫してはいない。
次の属性は整数でなければならない、ピリオドやカンマが含まれていてはならない。
- bitdepth
- buffering
- height
- samplingrate
- stream
- userid
- width
正 <group type="video" width="1024" height="1024">
誤 <group type="video" width="1,024" height="1,024">
次の時間ベースの属性では、ユーザー ロケールに関わらず、秒とフレーム数との間にピリオドを使わなければならない。
- cutpoint
- framerate
- mlength
- mstart
- mstop
- start
- stop
- time
- tlstart
- tlstop
正 <clip src="sample.avi" start="1:00.30">
誤 <clip src="sample.avi" start="1:00,30">
<param> 要素内のパラメータ値はすべて、ユーザー ロケールに応じて、ピリオドかカンマを使わなければならない。
例
English: <param name="Vol" value="0.050000">
German: <param name="Vol" value="0,050000">
DirectShow サンプルのビルドに関する注意
Windows XP VMR の機能を有効にするには、Visual C++ プロジェクト ファイルの Windows バージョンを 0x501 (Windows
XP バージョン) にすること。
- DirectShow 基底クラス ライブラリを使ったアプリケーション開発には DirectShow
サンプルのインストールが必要である。基底クラスのソースコードはサンプル プロジェクトとして
¥C++¥DirectShow¥BaseClassesdirectory に置かれている。これらの基底クラスをコンパイルして、ライブラリ
ファイルとしてはインストールされなくなった strmbase.lib と strmbasd.lib を作成しなければならない、これらはもはやバイナリ ファイルとしてはインストールされない。自身のアプリケーションを strmbase.lib あるいは strmbasd.lib とリンクするなら、(Visual Studio や Microsoft Platform SDKでインストールされた古いライブラリではなく) アップデートされた DirectX 9
ライブラリとビルド、リンクするように注意すること。
- 基底クラス ライブラリに依存しているサンプルをビルドする前に、基底クラス ライブラリのビルドが必要である。サンプルのビルドに関する詳細情報は、DirectShow サンプルのルート ディレクトリにある Readme.txt ファイルを参照すること。
- SDK に含まれるサンプルはアップデートされたライブラリとコンパイル、リンクするよう構成されている、これは BaseClasses
プロジェクトをビルドして作成される。ビルド手順の詳細は以下を参照すること : <SDK ルート>¥samples¥Multimedia¥DirectShow¥readme.txt.
- DirectShow IDL ファイルは SDK の ¥include¥DShowIDL ディレクトリにインストールされている。
- <streams.h> ヘッダー ファイルは、DirectShow サンプル BaseClasses ディレクトリに現在は置かれている。ここには多くの他の DirectShow 固有のへッダー ファイルと共に、BaseClasses ソースコードとヘッダーフェイルが置かれている。Visual C++ に全てのアップデートされたヘッダー ファイルを見られるようにするには、プロジェクトのインクルード パス設定の最上位に BaseClasses ディレクトリを追加しなければならない。
- CD-ROM の SDK を持っているなら、Extras¥DirectShow¥Media ディレクトリに追加のメディアが置かれている。それらは
DirectShow と DirectShow Editing Services (DES) インターフェイスとともに使える。DV にエンコードされた AVI ビデオ、大きな MPEG ビデオ、高品質の JPEG 画像が含まれている。DV ファイルは非常に大きいので、ベスト パフォーマンスを得るには、再生する前に、ハードディスクにコピーするべきである。
- DirectShow MFC サンプルは、MFC Unicode ライブラリ (MFC42U.LIB と MFC42UD.LIB) がシステムにインストールされていない限り、Visual Studio 6 では、Unicode 設定でビルドできない。これらのライブラリはデフォルトでは、Visual Studio 6 にはインストールされない。
それらを追加するには
- コントロールパネルから [プログラムの追加と削除] を選択。
- Visual Studio 6 を強調表示させる。
- [変更と削除] ボタンをクリック。これで Visual Studio 6 のアプリケーション セットアップが開始する。
- [追加/削除] ボタンをクリック。
- [Visual Studio C++ 6] を強調表示させる。[オプションの変更...] ボタンをクリック。
- [VC++ MFC とテンプレート ライブラリ] を強調表示させる。[オプションの変更...] ボタンをクリック。
- [MS Foundation Class ライブラリ] を強調表示させる。[オプションの変更...] ボタンをクリック。
- [Unicode 共有ライブラリ] を強調表示させる。[OK] ボタンをクリック。
back to top
CD レイアウト
以下は DirectX 9.0 SDK CD 内のディレクトリの説明である。インストール中に指定したオプションに対応して、以下のディレクトリの幾つかがハードディスクにインストールされる。
¥Bin
-
¥DXUtils
上位レベルの DirectX アプリケーションとツール。すべて SDK Sample Browser からアクセス可能。
-
¥DirectX extensions for Visual Studio
Microsoft® Visual Studio® はアセンブリ レベル言語と上位レベル言語の頂点シェーダとピクセル シェーダをデバッグをサポートする。
¥Visual Studio 6.0 Wizards
このディレクトリには Microsoft Visual C++ 6.0 にプラグイン可能なアプリケーション ウィザードが置かれている。このウィザードはSDKによってインストールされる。
-
¥Visual Studio 7.0 Wizards
このディレクトリには Microsoft Visual C++ 7.0 にプラグイン可能なアプリケーション ウィザードが置かれている。このウィザードは DirectX 9.0 SDKによってインストールされる。
¥Include
DirectX コアコンポーネントの DirectX 9.0 インクルード ファイルが置かれいる。
¥Lib
DirectX コアコンポーネントの DirectX 9.0 ライブラリ ファイルが置かれている。
¥License
DirectX SDK の使用許諾書と、エンドユーザー向けの使用許諾書と、再頒布許諾書のテキスト版
¥Redist
DirectX 9.0 ランタイムの再頒布バージョン
¥Samples
全てのサンプル コードとサンプルバイナリが置かれている。ダウンロードした InstallShield セットアップ インストールでインストールしたなら、大部分のサンプルは [スタート] メニューからアクセスできる。
¥SDKDev
このディレクトリには SDK と共にインストールされるランタイムが含まれる。英語版のみであり、デバッグとリテール両方の DirectX 9.0 システムコンポーネントが含まれる、これは再インストールせずにリテールとデバッグが「スイッチ」できる。DirectX 9.0 コンポーネントではリテールとデバッグは DirectX コントロールパネルからスイッチできる。¥retail フォルダには非 DirectX 9.0 リテールコンポーネントをインストールするセットアップが含まれ、¥debug フォルダは全てのデバッグコンポーネントをインストールするフォルダである。どちらも DirectX 9.0 リテールとデバッグ コンポーネントをインストールする。これらだけが「スイッチ」可能なコンポーネントである。
¥Doc
DirectX 9.0 API のリファレンス ドキュメントが入っている。このドキュメントには Windows HTMLHelp が必要である。
注 : HTMLHelp ビューアには最低限 Internet Explorer 5.0 (IE5)が必要である。最新の IE は
http://www.microsoft.com/japan/ie/ にある。
¥Essentials (CD あるいは分割ダウロードから利用可能)
-
¥DirectMusic Producer
DirectMusic Producer は DirectMusic のオーサリング ツールである。これを使って編集者やサウンド デザイナはDirectMusic の複数のリソースを DLS の安定したサウンドパフォーマンスと共にインタラクティブに使える。DirectX オーディオ スクリプティングも Producer と共にオーサリングやテストに使える。DirectMusic Producer のセットアップ プログラムと全てのファイルがここにある。
¥DirectMusic Style Library
Style ライブラリにはさまざまなジャンルを表現する 187 のスタイルと、27 コードマップと、視聴用の基本スタイルプレーヤが入っている。
重要 : StylePlayer.exe は、スタイル (sty) とコードマップ (cdm) と一緒に、ローカルマシンにコピーし同じディテクトリに置くべきである (そうしないと、アプリケーションはコンテンツ ファイルを発見できない)。詳細情報は StylePlayer.txt を見ること。
¥Extras (CD あるいは分割ダウロードから利用可能)
-
¥Direct3D
スキニング エクスポータ ツール
¥DirectShow
DVDBoilerplate が入っている。詳細はこのディレクトリの readme.txt を参照すること。
DirectShow と DirectShow 編集サービス (DES) インターフェイスで利用可能な追加メディアが置かれている。
¥Documentation
日本語の DirectX 9 HTMLHelp と、Visual Studio .NET 用の DirectX 9 日本語ドキュメント インストーラが置かれている。英語と日本語の DirectX 7 HTMLHelp ドキュメントと Microsoft Word フォーマットの DirectX 7.0 ドキュメント (英語のみ)、さらに日本語版の DirectX 8.0 HTMLHelp ドキュメントが置かれている。
¥Symbols
Windows 9x、Windows 2000、Windows XP 用の DirectX 9.0 シンボルファイル(リテールとデバッグそれぞれ)のディレクトリが置かれている。
¥POCKETPC
Pocket PC 用の DirectPlay バイナリ、サンプル、シンボル (リテール/デバッグ) が置かれている。
back to top
コンパイラ サポート
- 全ての DirectX 9.0 SDK サンプルは Visual Studio 7.0 で開発、コンパイルされてる。DirectX 9.0 SDKサンプルは
Visual Studio 7.0 でのコンパイルに最適化されていおり、便利のために Visual Studio 6.0 DSP ファイルを提供する。
- DirectX SDK は Visual Studio 5.0 の使用をサポートしない。これは動作するが、Visual Studio 5.0 と DirectX 9.0 SDK の使用に関する問題はこのリリースあるいは将来のリリースでも解決されないだろう。DirectX 8.0a SDK は VC 5.0 (SP3 リンカー修正を含む)と Windows 95 をサポートしているので、開発者によってはこれを選択すべきかもしれない。
back to top
謝辞
Marlin Studios
Billboard サンプルに用いられているテクスチャ tree02S.tga、tree01S.tga、tree35S.tga は Marlin Studios
( http://www.marlinstudios.com/) の好意によって提供されている。 これらはこのサンプルでの使用に対してのみ提供され、それ以外のアプリケーションで頒布することはできない。
Viewpoint Digital, Inc.
Visual Basic AutoParts サンプルに使われているモデル engine1.x は Viewpoint Digital, Inc. (http://www.viewpoint.com/) の好意によって提供されている。これらはこのサンプルでの使用に対してのみ提供され、それ以外のアプリケーションで頒布することはできない。V6 Engine Model copyright 1999 Viewpoint Digital, Inc
3DCAFE and Platinum Pictures
Dolphin サンプルのモデル Dolphin.x はモデルファイル dolphins.zip から得られ、3DCAFE and Platinum Pictures (http://www.3dcafe.com/) の好意によって提供されている。これらはこのサンプルでの使用に対してのみ提供されている。使用については 3DCAFE サイトにアクセスし、3DCAFE とコンタクトしてほしい。
back to top
ROLAND SoundCanvas Sound Set For General MIDI And GS Format
Roland SoundCanvas Sound Set は General MIDI 完全互換サウンドセットに必要なサウンドを含んでいる。それはまた GS
フォーマット完全互換サウンド セットに必須のサウンドをも含んでいる。
GS フォーマットとは何か?
GS フォーマットは、マルチチンバー音源が MIDI メッセージに応答する方法を定義しているサウンド ソース仕様を標準化したセットである。GS フォーマットはまた General MIDI System Level 1 にも従う。
GS フォーマットはまた General MIDI の機能以上に多くの別定義を持っている。これらはサウンドに関する特有の仕様と、トーン編集・エフェクト・その他の仕様など他のサウンド ソースが MIDI メッセージに応答する方法に関して有効な機能を含んでいる。GS フォーマット サウンド ソースを持つどんなデバイスも General MIDI サウンド録音と GS フォーマット MIDI サウンド録音の両方を忠実に再現できる。
ローランドのコンタクト先
詳細については以下にお問い合わせください:
Roland Corporation U.S.
7200 Dominion Circle
Los Angeles, CA 90040-3696
Phone: (323) 890-3700
Fax: (323) 890-3701
著作権に関する注意とライセンスの制限
Roland GS Sound Set/Microsoft (P) 1996 Roland Corporation U.S.
Roland GS Sound Set/Microsoft、つまり "サンプル セット" にはローランド サウンドキャンバス サウンド セットが組み込まれています。米国 Roland Corporation は、サンプル セットとそれに関連するすべての著作権を保有しています。さらに、サンプル セットの使用は、Microsoft のオペレーティング システム製品およびアプリケーション製品でのみ許可されています。
Microsoft の使用許諾契約書の条項で、サンプル セットに関して米国 Roland Corporation または Microsoft によって明白に許可されていない権利は、すべてローランドが保有します。
サンプル セットの再頒布は、Microsoft オペレーティング システム製品の統合コンポーネントとして、Microsoft の使用許諾契約書の条項に従って、ソフトウェア アプリケーションと一緒に行う場合にのみ認められます。サンプル セットをその他の用途に使用する場合は、米国 Roland Corporation からの別の書面による許可が必要となります。
米国 Roland Corporation の法的権限を持つ代表者による書面による事前承認なく、サンプル セットをハードウェア ROM または同様のデバイスで、使用、複写、または再頒布することはできません。また、サンプル セットを何らかの楽器と共に再頒布することはできません。"楽器" とは、ライセンスされた Microsoft オペレーティング システムを実行しているコンピュータに直接接続しなくても、音楽のサウンドを生成することができるデバイスのことです。いかなる環境においても、サンプル セットを修正することは許可されていません。
back to top